Using Control Dependencies for Space-Aware Bytecode Verification
نویسندگان
چکیده
Java applets run on a Virtual Machine that checks code integrity and correctness before execution using a module called the Bytecode Verifier. Java Card technology allows Java applets to run on smart cards. The large memory requirements of the verification process do not allow the implementation of an embedded Bytecode Verifier in the Java Card Virtual Machine. To address this problem, we propose a verification algorithm that optimizes the use of system memory by imposing an ordering on the verification of the instructions. This algorithm is based on control flow dependencies and immediate postdominators in control flow graphs.
منابع مشابه
A Space-Aware Bytecode Verifier for Java Cards
The bytecode verification is a key point of the security chain of the Java Platform. However, it is an optional feature in many embedded devices since the memory requirements of the verification process are too high. In this paper we propose a verification algorithm that drastically reduces the memory use by performing the verification during multiple specialized passes. The algorithm reduces t...
متن کاملPractical Verification Condition Generation for a Bytecode Language
Automatic program verifiers typically generate verification conditions from the program and discharge them with an automated theorem prover. An important consideration is the manner in which program code and invariants are expressed. We have developed a bytecode language (similar, in spirit, to Java bytecode) on which verification is performed. This serves as both an intermediate language for u...
متن کاملJava bytecode verification with dynamic structures
Java applets run on a Virtual Machine that checks code’s integrity and correctness before execution using a module called Bytecode Verifier. Java Card technology allows Java applets to run on smart cards. Large memory space requirements of the verification process do not allow the implementation of a Bytecode Verifier embedded in the Java Card Virtual Machine. To address this feasibility proble...
متن کاملSound Control Flow Graph Extraction from Incomplete Java Bytecode Programs
The modular analysis of control flow of incomplete Java bytecode programs is challenging, mainly because of the complex semantics of the language, and the unknown inter-dependencies between the available and unavailable components. In this paper we describe a technique for incremental, modular extraction of control flow graphs that are provably sound w.r.t. sequences of method invocations and e...
متن کاملEfficient Bytecode Verification Using Immediate Postdominators in Control Flow Graphs: Extended Abstract
Java Virtual Machine (JVM) code (also called bytecode) [11] can be downloaded by untrusted sources and executed directly. A component of the Java security model is the Java bytecode Verifier, which makes sure that the bytecode is safe by static analysis at loading time and prior to execution. The bytecode Verifier checks type correctness, stack overflow or underflow, code containment, registers...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید
ثبت ناماگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید
ورودعنوان ژورنال:
- Comput. J.
دوره 49 شماره
صفحات -
تاریخ انتشار 2006